﻿package com.alstudio.utils.android.net.http;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;

import android.text.TextUtils;

import com.alstudio.app.ALLocalEnv;
import com.alstudio.module.recharge.ChargeHttpRqWrap;
import com.alstudio.module.recharge.ComintChargeOrderHttpResultWrap;
import com.alstudio.utils.log.ALLog;

public final class HttpDataHelper {

	private static String BUY_PRIVILEGE_SUFIX = "/Charge/propsbuy.action";
	public static final String BUY_PRIVILEGE_URL = "http://116.254.203.66:9280/Charge/propsbuy.action";
	public static final String GOLD_AWARD_URL = "http://116.254.203.69:8080/IMExtendWebService/servlet/AwardServlet";
	public static final String DATE_RECORD_URL = "http://116.254.203.68:8080/IMExtendWebService/servlet/AppointServlet";

	public static final String YEE_PAY_SERVERLET_URL = "http://116.254.203.66:9280/Charge/yeepay.action";
	public static final String ALIPAY_SERVERLET_URL = "http://116.254.203.66:9280/Charge/alipay.action";

	private static final String CHECK_RECHARGE_STATUS_URL = "http://116.254.203.66:9280/Charge/productorder.action";

	private static final String FINDPASSWORD_URL = "http://116.254.203.66:9280//Charge/findpwd.action";


	public static final String YEE_PAY_SERVERLET_SUFIX = "/Charge/yeepay.action";
	public static final String ALIPAY_SERVERLET_SUFIX = "/Charge/alipay.action";

	private static final String CHECK_RECHARGE_STATUS_SUFFIX = "/Charge/productorder.action";
	private static final String FINDPASSWORD_SUFIX = "/Charge/findpwd.action";

	private static final String TRANS_DATA_URL_SUFIX = "/Charge/yuanbao.action";
	// 银联
	private static final String UPPAY_SERVERLET_URL = "http://116.254.203.66:9090/pay/unionpay/action/purchase.php";

	// 扣除金币
	private static final String TAKEOFF_GOLD = "/IMExtendWebService/servlet/GoldServlet";
	public static final String TAKEOFF_GOLD_URL = "http://116.254.203.69:8080"
			+ TAKEOFF_GOLD;
	// 大陆运营版活动路径
	// private static String HOME_ACTIVITY_URL =
	// "http://m.cn.imeach.com/meachsetting/activity/index/android/";
	// 大陆测试版活动路径
	private static String HOME_ACTIVITY_URL = "http://test.m.cn.imeach.com/meachsetting/activity/index/android/";
	// 国际运营版活动路径
	// private static String HOME_ACTIVITY_URL =
	// "http://m.imeach.com/meachsetting/activity/index/android/";
	// 国际测试版活动路径
	// private static String HOME_ACTIVITY_URL =
	// "http://test.m.fn.imeach.com/meachsetting/activity/index/andorid/";
	// 获取任务奖励接口
	public static String GET_MISSION_AWARDS_SUFIX = "/Charge/task.action";
	// 测试获取任务奖励接口
	public static String GET_MISSION_AWARDS_URL = "http://116.254.203.69:8280/Charge/task.action";
	// 2013-6-21 使用分享 对应文档Moblove３.1协议文档.doc-11
	public static String NEW_FINISH_SHARE_TASK = "http://116.254.203.69:8480/Task/share.action";
	public static String NEW_FINISH_SHARE_TASK_SUFIX = "/Task/share.action";
	// 2013-6-24 增加新领奖接口
	public static String NEW_GET_REWARD_TASK = "http://116.254.203.66:18480/Task/reward.action";
	public static String NEW_GET_REWARD_TASK_SUFIX = "/Task/reward.action";

	// 2013-7-11 增加查看榜单接口
	public static String GET_RANK_LIST_URL = "http://116.254.203.62:5759";
	public static String GET_RANK_LIST_SUFIX = "/ranking";

	public static String BASE_ROST_URL = "http://116.254.203.62:5759/roster";

	public static final String TASK_SHARE_QQ = "QQ";
	public static final String TASK_SHARE_WEIBO = "WEIBO";
	public static final String TASK_SHARE_WEIXIN = "WEIXIN";


	private static boolean isEmptyString(String value) {
		return value == null || "".equals(value);
	}

	// 发送找回密码邮件
	public static boolean forgotPasswordMail(String email) {
		boolean bool = false;
		HttpURLConnection con = null;

		String baseUrl = "";

		if ((ALLocalEnv.getLocalEnv().getVersionConfig().getServerInfo() == null)
				|| isEmptyString(ALLocalEnv.getLocalEnv().getVersionConfig().getServerInfo().getExtendOther())) {
			baseUrl = FINDPASSWORD_URL;
			ALLog.d( "我用缺省的地址");
		} else {
			baseUrl = ALLocalEnv.getLocalEnv().getVersionConfig().getServerInfo().getExtendOther() + FINDPASSWORD_SUFIX;
		}

		try {
			String params = String.format("?email=%s",
					URLEncoder.encode(email, "UTF-8"));
			con = (HttpURLConnection) new URL(baseUrl + params)
					.openConnection();

			ALLog.d( "find pass url: " + con.getURL().toString());

			// 设置连接属性
			// con.setDoOutput(true);// 使用 URL 连接进行输出
			con.setDoInput(true);// 使用 URL 连接进行输入
			con.setConnectTimeout(30000);
			con.setReadTimeout(30000);

			// 设置请求属性
			con.setRequestProperty("keepAlive", "false");
			con.setRequestProperty("content-type", "application/octet-stream");
			con.setRequestProperty("Connection", "close");
			con.setRequestProperty("body", email);

			int responseCode = con.getResponseCode();
			ALLog.d( "responseCode:" + responseCode);
			if (HttpURLConnection.HTTP_OK == responseCode) {
				String codestr = con.getHeaderField("code");
				ALLog.d( "emailcode:" + codestr);
				int code = Integer.parseInt(codestr);
				if (HttpURLConnection.HTTP_OK == code) {
					bool = true;
				} else if (HttpURLConnection.HTTP_CREATED == responseCode) {
					bool = false;
				} else {
					bool = false;
				}

			} else if (HttpURLConnection.HTTP_CREATED == responseCode) {
				bool = false;
			} else {
				bool = false;
			}
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		return bool;
	}


	/**
	 * 请求送礼
	 * 
	 * @param token
	 * @param from
	 * @param to
	 * @param propId
	 * @return 200 - 送礼成功, 405 - 余额不足
	 */
//	public static HttpSendGiftResult requestSendGift(SendGiftHttpRqWrap data)
//			throws Exception {
//		if (isEmptyString(data.getToken()) || isEmptyString(data.getFrom())
//				|| isEmptyString(data.getTo())
//				|| isEmptyString(data.getPropId())) {
//			throw new IllegalArgumentException();
//		}
//
//		HttpSendGiftResult result = new HttpSendGiftResult();
//		HttpURLConnection con = null;
//
//		try {
//
//			String notify = "false";
//			if (data.isNotice()) {
//				notify = "true";
//			}
//
//			String params = String.format(
//					"?from=%s&to=%s&token=%s&propid=%s&intimate=%s&notify=%s",
//					URLEncoder.encode(data.getFrom(), "UTF-8"),
//					URLEncoder.encode(data.getTo(), "UTF-8"),
//					URLEncoder.encode(data.getToken(), "UTF-8"),
//					URLEncoder.encode(data.getPropId(), "UTF-8"),
//					URLEncoder.encode(data.getIntimate(), "UTF-8"),
//					URLEncoder.encode(notify, "UTF-8"));
//
//			String baseUrl = null;
//			if ((ALLocalEnv.getLocalEnv().getVersionConfig().getServerInfo() == null)
//					|| isEmptyString(ALLocalEnv.getLocalEnv().getVersionConfig().getServerInfo().getExtendChargeUrl())) {
//				baseUrl = SEND_GIFT_URL;
//			} else {
//				baseUrl = ALLocalEnv.getLocalEnv().getVersionConfig().getServerInfo().getExtendChargeUrl() + SEND_GIFT_SUFIX;
//			}
//
//			String url = baseUrl + params;
//
//			ALLog.d( "购买礼物URL" + url);
//			con = (HttpURLConnection) new URL(url).openConnection();
//
//			// con = (HttpURLConnection) new
//			// URL(SEND_GIFT_URL).openConnection();
//
//			// 设置连接属性
//			con.setDoOutput(true);// 使用 URL 连接进行输出
//			con.setDoInput(true);// 使用 URL 连接进行输入
//			con.setConnectTimeout(30000);
//			con.setReadTimeout(30000);
//
//			// 设置请求属性
//			con.setRequestProperty("keepAlive", "false");
//			// con.setRequestProperty("content-type",
//			// "application/octet-stream");
//			con.setRequestProperty("Connection", "close");
//
//			con.setRequestProperty("token", data.getToken());
//
//			// con.setRequestMethod("POST");
//			//
//			//
//			//
//			// byte[] b = params.toString().getBytes();
//			// con.getOutputStream().write(b, 0, b.length);
//			// con.getOutputStream().flush();
//			// con.getOutputStream().close();
//
//			result.setResultCode(con.getResponseCode());
//			if (result.getResultCode() == HttpResultWrap.RESULT_OK) {
//				String code = con.getHeaderField("code");
//				String gold = con.getHeaderField("gold");
//				// result.setResultCode(Integer.parseInt(code));
//				String moneyType = con.getHeaderField("moneytype");
//				if (Gifts.MONEY_TYPE_YUANBAO.equals(moneyType)) {
//					gold = con.getHeaderField("jindou");
//				}
//				ALLog.d( "送礼code:" + code);
//				if (!TextUtils.isEmpty(code)) {
//					result.setResultCode(Integer.parseInt(code));
//				}
//				result.setMoneyType(moneyType);
//				result.setGold(gold);
//				result.setRequestId(data.getRequestId());
//
//				result.setErrMsg(con.getHeaderField("errormsg"));
//			}
//			ALLog.d(
//					"返回值 : " + result.getResultCode() + " 错误信息 "
//							+ result.getErrMsg());
//		} catch (Exception e) {
//			e.printStackTrace();
//			throw e;
//		} finally {
//			if (con != null)
//				con.disconnect();
//		}
//
//		return result;
//	}


	public static BuyPrivilegeResult requestBuyPrivilege(
			BuyPrivilegeHttpRqWrap data) throws Exception {
		if (isEmptyString(data.getToken())
				|| isEmptyString(data.getProductId())
				|| isEmptyString(data.getChargeType())
				|| isEmptyString(data.getUsername())) {
			throw new IllegalArgumentException();
		}

		BuyPrivilegeResult result = new BuyPrivilegeResult();
		HttpURLConnection con = null;

		try {
			String user = data.getUsername();
			if (user.contains("@")) {
				user = user.substring(0, user.indexOf("@"));
			}
			String params = String.format(
					"?productid=%s&chargetype=%s&token=%s&username=%s",
					URLEncoder.encode(data.getProductId(), "UTF-8"),
					URLEncoder.encode(data.getChargeType(), "UTF-8"),
					URLEncoder.encode(data.getToken(), "UTF-8"),
					URLEncoder.encode(user, "UTF-8"));

			String baseUrl = null;
			if ((ALLocalEnv.getLocalEnv().getVersionConfig().getServerInfo() == null)
					|| isEmptyString(ALLocalEnv.getLocalEnv().getVersionConfig().getServerInfo().getExtendChargeUrl())) {
				baseUrl = BUY_PRIVILEGE_URL;
			} else {
				baseUrl = ALLocalEnv.getLocalEnv().getVersionConfig().getServerInfo().getExtendChargeUrl()
						+ BUY_PRIVILEGE_SUFIX;
			}

			String url = baseUrl + params;

			con = (HttpURLConnection) new URL(url).openConnection();

			// 设置连接属性
			con.setDoOutput(true);// 使用 URL 连接进行输出
			con.setDoInput(true);// 使用 URL 连接进行输入
			con.setConnectTimeout(30000);
			con.setReadTimeout(30000);

			// 设置请求属性
			con.setRequestProperty("keepAlive", "false");
			// con.setRequestProperty("content-type",
			// "application/octet-stream");
			con.setRequestProperty("Connection", "close");
			con.setRequestProperty("token", data.getToken());

			result.setResultCode(con.getResponseCode());

			if (result.getResultCode() == HttpResultWrap.RESULT_OK) {
				String code = con.getHeaderField("code");

				// result.setResultCode(Integer.parseInt(code));
				if (!TextUtils.isEmpty(code)) {
					result.setResultCode(Integer.parseInt(code));
				}

				ConsumePackage p = new ConsumePackage();
				// 消耗金币
				p.setPrice(con.getHeaderField("gold"));
				// 购买成功后可以购买的人数
				p.setPeople(con.getHeaderField("people"));
				p.setDay(con.getHeaderField("day"));
				// 生效时间
				p.setEffecTime(con.getHeaderField("effectime"));
				// 失效时间
				p.setExpiredtime(con.getHeaderField("expiredtime"));
				// 广告位购买时间
				p.setBuytime(con.getHeaderField("buytime"));

				ALLog.d( "生效时间" + p.getEffectTime());
				ALLog.d( "失效时间" + p.getExpiredtime());
				ALLog.d( " 广告位购买时间" + p.getBuyTime());
				ALLog.d( " 消耗金币" + p.getPrice());

				result.setPackage(p);

			}
			ALLog.d( "返回值 : " + result.getResultCode());
		} catch (Exception e) {
			e.printStackTrace();
			throw e;
		} finally {
			if (con != null)
				con.disconnect();
		}

		return result;
	}

//	public static ComintChargeOrderHttpResultWrap requestGoogleCharge(
//			ChargeHttpRqWrap data) throws Exception {
//		if (isEmptyString(data.getToken())
//				|| isEmptyString(data.getProductId())
//				|| isEmptyString(data.getOrderId())
//				|| isEmptyString(data.getUsername())) {
//			throw new IllegalArgumentException();
//		}
//
//		String verify = "";
//		try {
//			verify = DES.encryptDES(
//					data.getOrderId() + "," + data.getProductId(),
//					LooveeService.getUsbPort());
//		} catch (Exception e) {
//			throw e;
//		}
//
//		ComintChargeOrderHttpResultWrap result = new ComintChargeOrderHttpResultWrap();
//		HttpURLConnection con = null;
//
//		try {
//
//			String user = data.getUsername();
//			if (user.contains("@")) {
//				user = user.substring(0, user.indexOf("@"));
//			}
//
//			// String params = String.format("?verify=%s&username=%s&token=%s",
//			// URLEncoder.encode(verify, "UTF-8"),
//			// URLEncoder.encode(user, "UTF-8"),
//			// URLEncoder.encode(data.getToken(), "UTF-8"));
//
//			String params = String.format("?username=%s&token=%s",
//					URLEncoder.encode(user, "UTF-8"),
//					URLEncoder.encode(data.getToken(), "UTF-8"));
//
//			String baseUrl = null;
//			if ((ALLocalEnv.getLocalEnv().getVersionConfig().getServerInfo() == null)
//					|| isEmptyString(ALLocalEnv.getLocalEnv().getVersionConfig().getServerInfo().getExtendChargeUrl())) {
//				baseUrl = GOOGLE_CHARGE_URL;
//			} else {
//				baseUrl = ALLocalEnv.getLocalEnv().getVersionConfig().getServerInfo().getExtendChargeUrl()
//						+ GOOGLE_CHARGE_SUFIX;
//			}
//
//			String url = baseUrl + params;
//			ALLog.d( "请求google充值" + url);
//
//			con = (HttpURLConnection) new URL(url).openConnection();
//
//			// 设置连接属性
//			con.setDoOutput(true);// 使用 URL 连接进行输出
//			con.setDoInput(true);// 使用 URL 连接进行输入
//			con.setConnectTimeout(30000);
//			con.setReadTimeout(30000);
//
//			// 设置请求属性
//			con.setRequestProperty("keepAlive", "false");
//			con.setRequestProperty("content-type", "application/octet-stream");
//			con.setRequestProperty("Connection", "close");
//			con.setRequestProperty("verify", /*
//											 * URLEncoder.encode(verify,
//											 * "UTF-8")
//											 */verify);
//			con.setRequestProperty("token", data.getToken());
//
//			con.setRequestMethod("POST");
//
//			result.setResultCode(con.getResponseCode());
//
//			String orderId = con.getHeaderField("orderid");
//
//			if (result.getResultCode() == HttpResultWrap.RESULT_OK) {
//				String code = con.getHeaderField("code");
//				result.setResultCode(Integer.parseInt(code));
//				if (!TextUtils.isEmpty(code)) {
//					result.setResultCode(Integer.parseInt(code));
//				}
//			}
//
//			ALLog.d( "返回值 : " + result.getResultCode());
//			if (orderId != null) {
//				result.setOrderId(orderId);
//				ALLog.d( "order id " + result.getOrderId());
//			}
//
//		} catch (Exception e) {
//			e.printStackTrace();
//			throw e;
//		} finally {
//			if (con != null)
//				con.disconnect();
//		}
//
//		return result;
//	}

//	public static GetSystemAwardResult requestGoldAward(GoldAwardHttpRqWrap data)
//			throws Exception {
//		if (isEmptyString(data.getToken()) || isEmptyString(data.getUsername())
//				|| isEmptyString(data.getType())) {
//			throw new IllegalArgumentException();
//		}
//
//		GetSystemAwardResult result = new GetSystemAwardResult();
//		result.setRequestData(data);
//		HttpURLConnection con = null;
//
//		try {
//			String user = data.getUsername();
//			if (user.contains("@")) {
//				user = user.substring(0, user.indexOf("@"));
//			}
//			ALLog.d( "现在获取类型为" + data.getType() + "的奖励");
//
//			String params = String.format("?token=%s&username=%s&type=%s",
//					URLEncoder.encode(data.getToken(), "UTF-8"),
//					URLEncoder.encode(user, "UTF-8"),
//					URLEncoder.encode(data.getType(), "UTF-8"));
//
//			if (data.getIndex() >= 0) {
//				params += String.format("&index=%d", data.getIndex());
//				result.setIndex(data.getIndex());
//			}
//
//			ALLog.d( "data.getPraiseid()" + data.getPraiseid());
//
//			if (!isEmptyString(data.getPraiseid())) {
//				params += String.format("&praiseid=%s", data.getPraiseid());
//			}
//
//			if (data.getMinute() > 0) {
//				params += String.format("&minute=%d", data.getMinute());
//			}
//
//
//			String baseUrl = null;
//			if ((ALLocalEnv.getLocalEnv().getVersionConfig().getServerInfo() == null)
//					|| isEmptyString(ALLocalEnv.getLocalEnv().getVersionConfig().getServerInfo().getExtendChargeUrl())) {
//				baseUrl = GOLD_AWARD_URL;
//			} else {
//				baseUrl = ALLocalEnv.getLocalEnv().getVersionConfig().getServerInfo().getExtendChargeUrl()
//						+ GOLD_AWARD_SUFIX;
//			}
//
//			String url = baseUrl + params;
//
//			ALLog.d( url);
//
//			con = (HttpURLConnection) new URL(url).openConnection();
//
//			// 设置连接属性
//			con.setDoInput(true);// 使用 URL 连接进行输入
//			con.setConnectTimeout(30000);
//			con.setReadTimeout(30000);
//
//			// 设置请求属性
//			con.setRequestProperty("keepAlive", "false");
//			con.setRequestProperty("Connection", "close");
//			con.setRequestProperty("token", data.getToken());
//
//			if (data.getType().equals(GoldAwardHttpRqWrap.AWARD_LOTERRY_CHANCE)) {
//				con.setRequestProperty("lotteritoken", data.getLotteryToken());
//			}
//
//			result.setResultCode(con.getResponseCode());
//
//			if (result.getResultCode() == HttpResultWrap.RESULT_OK) {
//				String code = con.getHeaderField("code");
//				result.setType(data.getType());
//				result.setGold(con.getHeaderField("gold"));
//				result.setPropid(con.getHeaderField("propid"));
//				ALLog.d( "奖励金币数 : " + result.getGold());
//				ALLog.d( "setPropid : " + result.getPropid());
//				// result.setResultCode(Integer.parseInt(code));
//				if (!TextUtils.isEmpty(code)) {
//					result.setResultCode(Integer.parseInt(code));
//				}
//			}
//			ALLog.d( "返回值 : " + result.getResultCode());
//		} catch (Exception e) {
//			e.printStackTrace();
//			throw e;
//		} finally {
//			if (con != null)
//				con.disconnect();
//		}
//
//		return result;
//	}


	public static ComintChargeOrderHttpResultWrap requestUploadYeepayOrder(
			ChargeHttpRqWrap data) throws Exception {

		if (isEmptyString(data.getToken())
				|| isEmptyString(data.getProductId())
				|| isEmptyString(data.getOrderId())
				|| isEmptyString(data.getUsername())) {
			throw new IllegalArgumentException();
		}

		ComintChargeOrderHttpResultWrap result = new ComintChargeOrderHttpResultWrap();
		HttpURLConnection con = null;

		try {

			String user = data.getUsername();
			if (user.contains("@")) {
				user = user.substring(0, user.indexOf("@"));
			}

			String params = String
					.format("?username=%s&token=%s&type=%s&orderid=%s&productid=%s&downfrom=%s",
							URLEncoder.encode(user, "UTF-8"),
							URLEncoder.encode(data.getToken(), "UTF-8"),
							URLEncoder.encode("createorder"),
							URLEncoder.encode(data.getOrderId()),
							URLEncoder.encode(data.getProductId()),
							URLEncoder.encode(ALLocalEnv.getLocalEnv()
									.getDownloadUrl()));

			String baseUrl = null;
			if ((ALLocalEnv.getLocalEnv().getVersionConfig().getServerInfo() == null)
					|| isEmptyString(ALLocalEnv.getLocalEnv().getVersionConfig().getServerInfo().getChargeCallbackUrl())) {
				baseUrl = YEE_PAY_SERVERLET_URL;
			} else {
				baseUrl = ALLocalEnv.getLocalEnv().getVersionConfig().getServerInfo().getChargeCallbackUrl();
			}

			String url = baseUrl + params;
			ALLog.d( "请求上传医保充值订单" + url);

			con = (HttpURLConnection) new URL(url).openConnection();

			// 设置连接属性
			con.setDoOutput(true);// 使用 URL 连接进行输出
			con.setDoInput(true);// 使用 URL 连接进行输入
			con.setConnectTimeout(30000);
			con.setReadTimeout(30000);

			// 设置请求属性
			con.setRequestProperty("keepAlive", "false");
			con.setRequestProperty("content-type", "application/octet-stream");
			con.setRequestProperty("Connection", "close");
			// con.setRequestProperty("verify", URLEncoder.encode(verify,
			// "UTF-8"));
			con.setRequestProperty("token", data.getToken());

			con.setRequestMethod("POST");

			result.setResultCode(con.getResponseCode());

			String orderId = con.getHeaderField("orderid");

			if (result.getResultCode() == HttpResultWrap.RESULT_OK) {
				String code = con.getHeaderField("code");

				ALLog.d( "返回值 xx: " + code);

				result.setResultCode(Integer.parseInt(code));
				if (!TextUtils.isEmpty(code)) {
					result.setResultCode(Integer.parseInt(code));
				} else {
					result.setResultCode(404);
				}
			}

			ALLog.d( "返回值 : " + result.getResultCode());
			if (orderId != null) {
				result.setOrderId(orderId);
				ALLog.d( "order id " + result.getOrderId());
			}

		} catch (Exception e) {
			e.printStackTrace();
			throw e;
		} finally {
			if (con != null)
				con.disconnect();
		}

		return result;

	}

	public static ComintChargeOrderHttpResultWrap requestUploadAlipayOrder(
			ChargeHttpRqWrap data) throws Exception {
		if (isEmptyString(data.getToken())
				|| isEmptyString(data.getProductId())
				|| isEmptyString(data.getOrderId())
				|| isEmptyString(data.getUsername())) {
			throw new IllegalArgumentException();
		}

		ComintChargeOrderHttpResultWrap result = new ComintChargeOrderHttpResultWrap();
		HttpURLConnection con = null;

		try {

			String user = data.getUsername();
			if (user.contains("@")) {
				user = user.substring(0, user.indexOf("@"));
			}

			String params = String
					.format("?username=%s&token=%s&type=%s&orderid=%s&productid=%s&downfrom=%s",
							URLEncoder.encode(user, "UTF-8"),
							URLEncoder.encode(data.getToken(), "UTF-8"),
							URLEncoder.encode("createorder"),
							URLEncoder.encode(data.getOrderId()),
							URLEncoder.encode(data.getProductId()),
							URLEncoder.encode(ALLocalEnv.getLocalEnv()
									.getDownloadUrl()));

			String baseUrl = null;
			if ((ALLocalEnv.getLocalEnv().getVersionConfig().getServerInfo() == null)
					|| isEmptyString(ALLocalEnv.getLocalEnv().getVersionConfig().getServerInfo().getAlipayUrl())) {
				baseUrl = ALIPAY_SERVERLET_URL;
			} else {
				baseUrl = ALLocalEnv.getLocalEnv().getVersionConfig().getServerInfo().getAlipayUrl();
			}

			String url = baseUrl + params;
			ALLog.d( "请求上传致富饱充值订单" + url);

			con = (HttpURLConnection) new URL(url).openConnection();

			// 设置连接属性
			con.setDoOutput(true);// 使用 URL 连接进行输出
			con.setDoInput(true);// 使用 URL 连接进行输入
			con.setConnectTimeout(30000);
			con.setReadTimeout(30000);

			// 设置请求属性
			con.setRequestProperty("keepAlive", "false");
			con.setRequestProperty("content-type", "application/octet-stream");
			con.setRequestProperty("Connection", "close");
			// con.setRequestProperty("verify", URLEncoder.encode(verify,
			// "UTF-8"));
			con.setRequestProperty("token", data.getToken());

			con.setRequestMethod("POST");

			result.setResultCode(con.getResponseCode());

			String orderId = con.getHeaderField("orderid");

			if (result.getResultCode() == HttpResultWrap.RESULT_OK) {
				String code = con.getHeaderField("code");

				ALLog.d( "返回值 xx: " + code);

				result.setResultCode(Integer.parseInt(code));
				if (!TextUtils.isEmpty(code)) {
					result.setResultCode(Integer.parseInt(code));
				} else {
					result.setResultCode(404);
				}
			}

			ALLog.d( "返回值 : " + result.getResultCode());
			if (orderId != null) {
				result.setOrderId(orderId);
				ALLog.d( "order id " + result.getOrderId());
			}

		} catch (Exception e) {
			e.printStackTrace();
			throw e;
		} finally {
			if (con != null)
				con.disconnect();
		}

		return result;

	}

	public static ComintChargeOrderHttpResultWrap requestUploadUPPayOrder(
			ChargeHttpRqWrap data) throws Exception {
		if (isEmptyString(data.getToken())
				|| isEmptyString(data.getProductId())
				|| isEmptyString(data.getOrderId())
				|| isEmptyString(data.getUsername())) {
			throw new IllegalArgumentException();
		}

		ComintChargeOrderHttpResultWrap result = new ComintChargeOrderHttpResultWrap();
		HttpURLConnection con = null;

		try {

			String user = data.getUsername();
			if (user.contains("@")) {
				user = user.substring(0, user.indexOf("@"));
			}

			String params = String.format(
					"?username=%s&token=%s&type=%s&orderid=%s&productid=%s",
					URLEncoder.encode(user, "UTF-8"),
					URLEncoder.encode(data.getToken(), "UTF-8"),
					URLEncoder.encode("createorder"),
					URLEncoder.encode(data.getOrderId()),
					URLEncoder.encode(data.getProductId()));

			String baseUrl = null;
			if ((ALLocalEnv.getLocalEnv().getVersionConfig().getServerInfo() == null)
					|| isEmptyString(ALLocalEnv.getLocalEnv().getVersionConfig().getServerInfo().getAlipayUrl())) {
				baseUrl = ALIPAY_SERVERLET_URL;
			} else {
				baseUrl = ALLocalEnv.getLocalEnv().getVersionConfig().getServerInfo().getAlipayUrl();
			}

			String url = baseUrl + params;
			ALLog.d( "请求上传致富饱充值订单" + url);

			con = (HttpURLConnection) new URL(url).openConnection();

			// 设置连接属性
			con.setDoOutput(true);// 使用 URL 连接进行输出
			con.setDoInput(true);// 使用 URL 连接进行输入
			con.setConnectTimeout(30000);
			con.setReadTimeout(30000);

			// 设置请求属性
			con.setRequestProperty("keepAlive", "false");
			con.setRequestProperty("content-type", "application/octet-stream");
			con.setRequestProperty("Connection", "close");
			// con.setRequestProperty("verify", URLEncoder.encode(verify,
			// "UTF-8"));
			con.setRequestProperty("token", data.getToken());

			con.setRequestMethod("POST");

			result.setResultCode(con.getResponseCode());

			String orderId = con.getHeaderField("orderid");

			if (result.getResultCode() == HttpResultWrap.RESULT_OK) {
				String code = con.getHeaderField("code");

				ALLog.d( "返回值 xx: " + code);

				result.setResultCode(Integer.parseInt(code));
				if (!TextUtils.isEmpty(code)) {
					result.setResultCode(Integer.parseInt(code));
				} else {
					result.setResultCode(404);
				}
			}

			ALLog.d( "返回值 : " + result.getResultCode());
			if (orderId != null) {
				result.setOrderId(orderId);
				ALLog.d( "order id " + result.getOrderId());
			}

		} catch (Exception e) {
			e.printStackTrace();
			throw e;
		} finally {
			if (con != null)
				con.disconnect();
		}

		return result;

	}

	public static ComintChargeOrderHttpResultWrap requestRechargeStatus(
			ChargeHttpRqWrap data) throws Exception {

		if (isEmptyString(data.getToken()) || isEmptyString(data.getOrderId())
				|| isEmptyString(data.getUsername())) {
			throw new IllegalArgumentException();
		}

		ComintChargeOrderHttpResultWrap result = new ComintChargeOrderHttpResultWrap();
		HttpURLConnection con = null;

		try {

			String user = data.getUsername();
			if (user.contains("@")) {
				user = user.substring(0, user.indexOf("@"));
			}

			String params = String.format("?username=%s&orderid=%s",
					URLEncoder.encode(user, "UTF-8"),
					URLEncoder.encode(data.getOrderId()));

			String baseUrl = null;
			if ((ALLocalEnv.getLocalEnv().getVersionConfig().getServerInfo() == null)
					|| isEmptyString(ALLocalEnv.getLocalEnv().getVersionConfig().getServerInfo().getExtendChargeUrl())) {
				baseUrl = CHECK_RECHARGE_STATUS_URL;
			} else {
				baseUrl = ALLocalEnv.getLocalEnv().getVersionConfig().getServerInfo().getExtendChargeUrl()
						+ CHECK_RECHARGE_STATUS_SUFFIX;
			}

			String url = baseUrl + params;
			ALLog.d( "请求医保充值" + url);

			con = (HttpURLConnection) new URL(url).openConnection();

			// 设置连接属性
			con.setDoOutput(true);// 使用 URL 连接进行输出
			con.setDoInput(true);// 使用 URL 连接进行输入
			con.setConnectTimeout(30000);
			con.setReadTimeout(30000);

			// 设置请求属性
			con.setRequestProperty("keepAlive", "false");
			con.setRequestProperty("content-type", "application/octet-stream");
			con.setRequestProperty("Connection", "close");
			// con.setRequestProperty("verify", URLEncoder.encode(verify,
			// "UTF-8"));
			con.setRequestProperty("token", data.getToken());

			con.setRequestMethod("POST");

			result.setResultCode(con.getResponseCode());

			String orderId = con.getHeaderField("orderid");

			if (result.getResultCode() == HttpResultWrap.RESULT_OK) {
				String code = con.getHeaderField("status");
				String cardstatus = con.getHeaderField("cardstatus");
				result.setCardstatus(cardstatus);
				ALLog.d( "返回值 xx: " + code);
				ALLog.d( "卡状态: " + result.getCardstatus());

				result.setResultCode(Integer.parseInt(code));
				if (!TextUtils.isEmpty(code)) {
					result.setResultCode(Integer.parseInt(code));
				} else {
					result.setResultCode(404);
				}
			}

			ALLog.d( "返回值 : " + result.getResultCode());
			if (orderId != null) {
				result.setOrderId(orderId);
				ALLog.d( "order id " + result.getOrderId());
			}

		} catch (Exception e) {
			e.printStackTrace();
			throw e;
		} finally {
			if (con != null)
				con.disconnect();
		}

		return result;

	}


	// 获取任务奖励
//	public static GetMissionAwardResult requestMissonAward(
//			MissionAwardHttpRqWrap data) throws Exception {
//		if (isEmptyString(data.getToken()) || isEmptyString(data.getUsername())
//				|| isEmptyString(data.getType())) {
//			throw new IllegalArgumentException();
//		}
//
//		GetMissionAwardResult result = new GetMissionAwardResult();
//		HttpURLConnection con = null;
//
//		try {
//			String user = data.getUsername();
//			if (user.contains("@")) {
//				user = user.substring(0, user.indexOf("@"));
//			}
//			ALLog.d( "现在获取类型为" + data.getId() + "的奖励");
//
//			String params = String.format(
//					"?token=%s&username=%s&taskid=%s&type=%s",
//					URLEncoder.encode(data.getToken(), "UTF-8"),
//					URLEncoder.encode(user, "UTF-8"),
//					URLEncoder.encode(data.getId(), "UTF-8"),
//					URLEncoder.encode(data.getType(), "UTF-8"));
//
//			String baseUrl = null;
//			if ((ALLocalEnv.getLocalEnv().getVersionConfig().getServerInfo() == null)
//					|| isEmptyString(ALLocalEnv.getLocalEnv().getVersionConfig().getServerInfo().getExtendChargeUrl())) {
//				baseUrl = GET_MISSION_AWARDS_URL;
//			} else {
//				baseUrl = ALLocalEnv.getLocalEnv().getVersionConfig().getServerInfo().getExtendChargeUrl()
//						+ GET_MISSION_AWARDS_SUFIX;
//			}
//
//			String url = baseUrl + params;
//
//			ALLog.d( url);
//
//			con = (HttpURLConnection) new URL(url).openConnection();
//
//			// 设置连接属性
//			con.setDoInput(true);// 使用 URL 连接进行输入
//			con.setConnectTimeout(30000);
//			con.setReadTimeout(30000);
//
//			// 设置请求属性
//			con.setRequestProperty("keepAlive", "false");
//			con.setRequestProperty("Connection", "close");
//			con.setRequestProperty("token", data.getToken());
//
//			result.setResultCode(con.getResponseCode());
//
//			if (result.getResultCode() == HttpResultWrap.RESULT_OK) {
//				String code = con.getHeaderField("code");
//				result.setGold(con.getHeaderField("gold"));
//				result.setExp(con.getHeaderField("exp"));
//				result.setGlamour(con.getHeaderField("glamour"));
//				result.setJindou(con.getHeaderField("jindou"));
//				ALLog.d( "奖励金币数 : " + result.getGold());
//				ALLog.d( "奖励经验数 : " + result.getExp());
//				ALLog.d( "奖励魅力值 : " + result.getGlamour());
//				ALLog.d( "奖励金豆数 : " + result.getJindou());
//				// result.setResultCode(Integer.parseInt(code));
//				if (!TextUtils.isEmpty(code)) {
//					result.setResultCode(Integer.parseInt(code));
//				}
//			}
//			ALLog.d( "返回值 : " + result.getResultCode());
//		} catch (Exception e) {
//			e.printStackTrace();
//			throw e;
//		} finally {
//			if (con != null)
//				con.disconnect();
//		}
//
//		return result;
//	}

//	public static void activateUserRequest(String token, String imei, String mac) {
//		HttpURLConnection con = null;
//		try {
//			String params = String.format(
//					"&imei=%s&mac=%s&downfrom=%s&version=%s",
//					URLEncoder.encode(imei, "UTF-8"),
//					URLEncoder.encode(mac, "UTF-8"),
//					URLEncoder.encode(ALLocalEnv.getLocalEnv(), "UTF-8"),
//					URLEncoder.encode(App.curVersion, "UTF-8"));
//
//			String url = VersionConfig.STATISTICS_URL + params;
//			HashMap<String, String> headers = new HashMap<String, String>();
//			ALLog.d( "activate user url: " + url);
//
//			con = AndroidNetUtils.buildHttpUrlConnectionUsingGetMethod(url,
//					headers);
//			ALLog.d(
//					"activate user response code: " + con.getResponseCode());
//
//			if (con.getResponseCode() == 200) {
//				AccountManager.setActiveSuccess();
//			}
//		} catch (Exception e) {
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		} finally {
//			try {
//				con.disconnect();
//			} catch (Exception e) {
//				// TODO Auto-generated catch block
//				e.printStackTrace();
//			}
//		}
//	}

//	public static void transDataRequest(String username, String token) {
//		HttpURLConnection con = null;
//
//		String baseUrl = "";
//
//		if ((ALLocalEnv.getLocalEnv().getVersionConfig().getServerInfo() == null)
//				|| isEmptyString(ALLocalEnv.getLocalEnv().getVersionConfig().getServerInfo().getExtendChargeUrl())) {
//			baseUrl = TRANS_DATA_URL;
//			ALLog.d( "我用缺省的地址");
//		} else {
//			baseUrl = ALLocalEnv.getLocalEnv().getVersionConfig().getServerInfo().getExtendChargeUrl()
//					+ TRANS_DATA_URL_SUFIX;
//		}
//
//		try {
//			String params = String.format("?username=%s",
//					URLEncoder.encode(username, "UTF-8"));
//			con = (HttpURLConnection) new URL(baseUrl + params)
//					.openConnection();
//
//			ALLog.d( "更改数据结构 url: " + con.getURL().toString());
//
//			// 设置连接属性
//			// con.setDoOutput(true);// 使用 URL 连接进行输出
//			con.setDoInput(true);// 使用 URL 连接进行输入
//			con.setConnectTimeout(30000);
//			con.setReadTimeout(30000);
//
//			// 设置请求属性
//			con.setRequestProperty("keepAlive", "false");
//			con.setRequestProperty("content-type", "application/octet-stream");
//			con.setRequestProperty("Connection", "close");
//			con.setRequestProperty("token", token);
//			con.setRequestProperty("username", username);
//
//			int responseCode = con.getResponseCode();
//			ALLog.d( "responseCode:" + responseCode);
//			if (HttpURLConnection.HTTP_OK == responseCode) {
//				String codestr = con.getHeaderField("code");
//				ALLog.d( "更改数据结构结果:" + codestr);
//				if (!TextUtils.isEmpty(codestr)) {
//					if (codestr.equals("200") || codestr.equals("605")) {
//						AccountManager.setDataTransed(true);
//					}
//				}
//
//			}
//		} catch (Exception e) {
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		}
//	}
	
//	public static void newTaskGetRewardRequest(String username, String token,
//			String taskid, boolean isNormal, boolean isXmission)
//			throws MalformedURLException, IOException {
//		HttpURLConnection con = null;
//
//		String baseUrl = "";
//
//		if ((ALLocalEnv.getLocalEnv().getVersionConfig().getServerInfo() == null)
//				|| isEmptyString(ALLocalEnv.getLocalEnv().getVersionConfig().getServerInfo().getExtendChargeUrl())) {
//			baseUrl = NEW_GET_REWARD_TASK;
//			ALLog.d( "我用缺省的地址" + baseUrl);
//		} else {
//			baseUrl = ALLocalEnv.getLocalEnv().getVersionConfig().getServerInfo().getNewTaskUrl()
//					+ NEW_GET_REWARD_TASK_SUFIX;
//			ALLog.d( "我用服务器下发的领奖的地址" + baseUrl);
//		}
//		String taskType = "leveltask";
//		if (isNormal) {
//			taskType = "dailytask";
//		}
//
//		if (isXmission) {
//			taskType = "xmission";
//		}
//		String params = String.format("?tasktype=%s&taskid=%s&username=%s",
//				taskType, taskid, URLEncoder.encode(username, "UTF-8"));
//		con = (HttpURLConnection) new URL(baseUrl + params).openConnection();
//
//		ALLog.d( "领奖 url: " + con.getURL().toString());
//
//		// 设置连接属性
//		// con.setDoOutput(true);// 使用 URL 连接进行输出
//		con.setDoInput(true);// 使用 URL 连接进行输入
//		con.setConnectTimeout(30000);
//		con.setReadTimeout(30000);
//
//		// 设置请求属性
//		con.setRequestProperty("keepAlive", "false");
//		con.setRequestProperty("content-type", "application/octet-stream");
//		con.setRequestProperty("Connection", "close");
//		con.setRequestProperty("token", token);
//
//		int responseCode = con.getResponseCode();
//		ALLog.d( "responseCode:" + responseCode);
//		if (HttpURLConnection.HTTP_OK == responseCode) {
//			String codestr = con.getHeaderField("code");
//			ALLog.d( "领奖结果 结果:" + codestr);
//			if (!TextUtils.isEmpty(codestr)) {
//
//			}
//
//		}
//	}

	// 获取任务奖励
//	public static GetMissionAwardResult requestNewMissonAward(
//			MissionAwardHttpRqWrap data) throws Exception {
//		if (isEmptyString(data.getToken()) || isEmptyString(data.getUsername())
//				|| isEmptyString(data.getId())) {
//			throw new IllegalArgumentException();
//		}
//
//		GetMissionAwardResult result = new GetMissionAwardResult();
//		HttpURLConnection con = null;
//
//		try {
//			String user = data.getUsername();
//			if (user.contains("@")) {
//				user = user.substring(0, user.indexOf("@"));
//			}
//			ALLog.d( "现在获取类型为" + data.getId() + "的奖励");
//
//			String taskType = "leveltask";
//			if (data.isNormal()) {
//				taskType = "dailytask";
//			}
//
//			if (data.isXmission()) {
//				taskType = "xmission";
//			}
//
//			String params = String.format("?tasktype=%s&taskid=%s&username=%s",
//					taskType, data.getId(), URLEncoder.encode(user, "UTF-8"));
//
//			String baseUrl = null;
//			if ((ALLocalEnv.getLocalEnv().getVersionConfig().getServerInfo() == null)
//					|| isEmptyString(ALLocalEnv.getLocalEnv().getVersionConfig().getServerInfo().getNewTaskUrl())) {
//				baseUrl = NEW_GET_REWARD_TASK;
//				ALLog.d( "我用缺省的地址" + baseUrl);
//			} else {
//				baseUrl = ALLocalEnv.getLocalEnv().getVersionConfig().getServerInfo().getNewTaskUrl()
//						+ NEW_GET_REWARD_TASK_SUFIX;
//				ALLog.d( "我用服务器下发的领奖的地址" + baseUrl);
//			}
//
//			// baseUrl = NEW_GET_REWARD_TASK;
//
//			String url = baseUrl + params;
//
//			Mylog.e("领奖 url: ", url);
//
//			con = (HttpURLConnection) new URL(url).openConnection();
//
//			// 设置连接属性
//			con.setDoInput(true);// 使用 URL 连接进行输入
//			con.setConnectTimeout(30000);
//			con.setReadTimeout(30000);
//
//			// 设置请求属性
//			con.setRequestProperty("keepAlive", "false");
//			con.setRequestProperty("Connection", "close");
//			con.setRequestProperty("token", data.getToken());
//
//			result.setResultCode(con.getResponseCode());
//
//			if (result.getResultCode() == HttpResultWrap.RESULT_OK) {
//				String code = con.getHeaderField("code");
//				result.setGold(con.getHeaderField("gold"));
//				result.setExp(con.getHeaderField("exp"));
//				result.setGlamour(con.getHeaderField("glamour"));
//				result.setJindou(con.getHeaderField("jindou"));
//				ALLog.d( "奖励金币数 : " + result.getGold());
//				ALLog.d( "奖励经验数 : " + result.getExp());
//				ALLog.d( "奖励魅力值 : " + result.getGlamour());
//				ALLog.d( "奖励金豆数 : " + result.getJindou());
//				// result.setResultCode(Integer.parseInt(code));
//				if (!TextUtils.isEmpty(code)) {
//					result.setResultCode(Integer.parseInt(code));
//				}
//			}
//			ALLog.d( "返回值 : " + result.getResultCode());
//		} catch (Exception e) {
//			e.printStackTrace();
//			throw e;
//		} finally {
//			if (con != null)
//				con.disconnect();
//		}
//
//		return result;
//	}


	public static boolean isNumeric(String str) {
		for (int i = str.length(); --i >= 0;) {
			int chr = str.charAt(i);
			if (chr < 48 || chr > 57)
				return false;
		}
		return true;
	}

	private static String Stream2String(InputStream is) {
		BufferedReader reader = new BufferedReader(new InputStreamReader(is),
				16 * 1024); // 强制缓存大小为16KB，一般Java类默认为8KB
		StringBuilder sb = new StringBuilder();
		String line = null;
		try {
			while ((line = reader.readLine()) != null) { // 处理换行符
				sb.append(line + "\n");
			}
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				is.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		return sb.toString();
	}



}
